#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""MySQLPass项目清理脚本
用于删除与运行程序无关的测试代码和临时文件"""

import os
import shutil
import sys

# 设置工作目录
os.chdir(os.path.dirname(os.path.abspath(__file__)))

# 定义要删除的文件列表
test_files = [
    # 调试和测试脚本
    "debug_main.py",
    "build_debug.py",
    "build_debug_main.py",
    "build_debug_script.py",
    "build_debug_version.py",
    "minimal_gui_test.py",
    "test_cli.py",
    "test_pyinstaller.py",
    "test_update.py",
    "complete_update_test.py",
    "debug_build.py",
    
    # 测试批处理文件
    "test_fixed_exe.bat",
    "test_fixed_exe_ansi.bat",
    "package_test.bat",
    "package_test_fixed.bat",
    "build_debug.bat",
    
    # 构建相关但可能不是必需的脚本
    "build_fixed.py",
    "build_simple.py",
    "build_minimal.py",
    "build_professional_installer_fixed.py",
    
    # 可能的临时文件
    "debug_main.spec"
]

# 定义要删除的目录列表
test_dirs = [
    "dist_debug",  # 测试打包生成的目录
    "build"  # 构建临时目录（如果存在）
]

def cleanup_files():
    """删除测试文件"""
    print("===== 开始清理测试文件 =====")
    
    # 删除文件
    for file_path in test_files:
        if os.path.exists(file_path):
            try:
                os.remove(file_path)
                print(f"已删除文件: {file_path}")
            except Exception as e:
                print(f"删除文件失败 {file_path}: {e}")
        else:
            print(f"文件不存在: {file_path}")
    
    # 删除目录
    for dir_path in test_dirs:
        if os.path.exists(dir_path):
            try:
                shutil.rmtree(dir_path)
                print(f"已删除目录: {dir_path}")
            except Exception as e:
                print(f"删除目录失败 {dir_path}: {e}")
        else:
            print(f"目录不存在: {dir_path}")
    
    print("\n===== 测试文件清理完成 =====")
    print("\n保留的核心文件：")
    print("- main.py (主程序入口)")
    print("- src/ (源代码目录)")
    print("- requirements.txt (依赖文件)")
    print("- 核心构建脚本")

if __name__ == "__main__":
    print("MySQLPass项目测试文件清理工具")
    print("此脚本将自动删除与运行程序无关的测试代码和临时文件")
    
    # 直接执行清理，不进行用户确认
    cleanup_files()